#include <stack>
#include <string>
#include <iostream>
#include <assert.h>
using namespace std;  

class Solution {
public:
	bool isValid(string s) {
	  stack<char> st;
	  for(char c:s){
	    //char c=s[i];
	    if(c=='('||c=='['||c=='{')
	      st.push(c);
		else if(c==')'||c==']'||c=='}'){  
			if(st.empty()) return false;
			char b=st.top();
			if((c==')'&&b!='(')||(c==']'&&b!='[')||(c=='}'&&b!='{'))return false;
			st.pop();
		}
	  }
	  if(!st.empty()) return false;
	  return true;
	}
};

string stringToString(string input) {
    assert(input.length() >= 2);
    string result;
    for (int i = 1; i < input.length() -1; i++) {
        char currentChar = input[i];
        if (input[i] == '\\') {
            char nextChar = input[i+1];
            switch (nextChar) {
                case '\"': result.push_back('\"'); break;
                case '/' : result.push_back('/'); break;
                case '\\': result.push_back('\\'); break;
                case 'b' : result.push_back('\b'); break;
                case 'f' : result.push_back('\f'); break;
                case 'r' : result.push_back('\r'); break;
                case 'n' : result.push_back('\n'); break;
                case 't' : result.push_back('\t'); break;
                default: break;
            }
            i++;
        } else {
          result.push_back(currentChar);
        }
    }
    return result;
}

string boolToString(bool input) {
    return input ? "True" : "False";
}

int main() {
    string line;
    while (getline(cin, line)) {
        string s = stringToString(line);
        
        bool ret = Solution().isValid(s);

        string out = boolToString(ret);
        cout << out << endl;
    }
    return 0;
}